package com.binance.mbxgateway.data.mapper;

import java.util.List;
import java.util.Map;

import com.binance.master.old.config.OldDB;
import org.apache.ibatis.annotations.Param;

import com.binance.master.annotations.DefaultDB;
import com.binance.mbxgateway.data.models.ApiModel;

@DefaultDB
public interface ApiModelMapper {

    void insert(ApiModel apiModel);

    void insertWithId(ApiModel apiModel);

    void insertFromPnkData(List<ApiModel> apiModels);

    void updateFromPnkData(ApiModel apiModel);

    void deleteById(@Param("id") Long id);

    List<ApiModel> selectApiList(Map<String, Object> param);

    long selectApiListCount(Map<String, Object> param);

    ApiModel selectModelByUuid(@Param("uuid") String uuid);

    ApiModel selectByWithdrawVerifycode(@Param("withdrawVerifycode") String withdrawVerifycode);

    ApiModel selectById(@Param("id") Long id);

    List<ApiModel> getApiByMap(Map<String, Object> param);

    public void updateByPrimaryKey(ApiModel apiModel);

    public void updateEmailVerifyStatus(@Param("apiEmailVerify") boolean apiEmailVerify, @Param("id") Long id,
            @Param("userId") String userId);

    public void updateForApiWithdraw(Map<String, Object> param);

    public int clear();

}
